Software updates often necessitate extensive testing to ensure that changes introduced by such updates work properly and/or do not cause pre-existing software functions to malfunction. For example, a software vendor may develop a network operating system that runs on various network devices (such as routers). In this example, prior to the release of an update to the network operating system, the software vendor may perform rigorous regression testing to validate any changes introduced by the update. As part of this regression testing, the software vendor may execute a specific set of scripts designed to determine whether the software update works as intended.
In some examples, the selection of these scripts may be based on an algorithm that searches for scripts with maximum line coverage of the software functions that have changed since the previous update. Unfortunately, this algorithm for selecting the set of scripts may have a few drawbacks, inefficiencies, and/or shortcomings. For example, the selected set of scripts may focus almost entirely on changed software functions, thereby potentially neglecting certain collateral functions affected by the changed software functions. Additionally or alternatively, the selected set of scripts may take a long time to fully execute and/or include certain redundancies that are unnecessary for the regression testing.
The instant disclosure, therefore, identifies and addresses a need for improved and/or additional systems and methods for efficiently performing regression testing on software updates.